


const localData = localStorage.getItem("pz-v3pzxxx");

const state = localData ? localData.menu : {
      isCollapse: false,
      selectMenu: [],
      routerList: [],
    };

const mutations = {
  collapseMenu(state) {
    state.isCollapse = !state.isCollapse;
  },
  // addMenu(state, payload){  // 这两个参数，是传过来的参数，以及定义的path 路径
  //   // 对数据进行去重 添加时
  //   if(state.selectMenu.findIndex(item => item.path === payload.path) === -1){
  //     state.selectMenu.push(payload)
  //   }
  // }

  addMenu(state, payload) {
    if (Array.isArray(state.selectMenu)) {
      // 对数据进行去重
      if (
        state.selectMenu.findIndex((item) => item.path === payload.path) === -1
      ) {
        state.selectMenu.push(payload);
      }
    } else {
      // 处理 selectMenu 不是数组的情况
      state.selectMenu = [payload];
    }
  },

  closeMenu(state, payload) {
    // 找到点击数据的索引
    const index = state.selectMenu.findIndex(
      (val) => val.name === payload.name
    );
    // 通过索引，对数据进行删除
    state.selectMenu.splice(index, 1);
  },
  dynamicMenu(state, payload) {
    // console.log(payload, "---payload---");
    // 通过glob导入文件
    const modules = import.meta.glob("../views/**/**/*.vue");
    console.log(modules, "---modules---");
    function routerSet(router) {
      router.forEach((route) => {
        // 判断没有子菜单，拼接路由数据
        if (!route.children) {
          const url = `../views${route.meta.path}/index.vue`;
          // console.log(url, "---url---");
          // 拿到获取的vue组件
          route.component = modules[url]
          // if (modules[url]) {
          //   // 动态导入组件
          //   route.component = () => modules[url];
          // } else {
          //   console.error(`Component not found for path: ${url}`);
          // }
        } else {
          // 递归调用
          routerSet(route.children);
        }
      });
    }
    routerSet(payload);
    // 拿到完整的路由数据
    state.routerList = payload;
  },
};

export default { state, mutations };
